Protecting confidential data (such as medical records, financial records, personal data, social security numbers, credit card numbers, corporate records, intellectual property, etc.) and other sensitive information from theft and/or unauthorized access is becoming increasingly important to businesses, computer users, and government organizations. Confidential data can exist as so-called “data-at-rest”, which is data stored on some type of a storage system such as an array or tape), as well as “data in flight,” (also referred to as “data in motion” or “data in transit”) which includes data as it exists during its transmission or that is temporarily residing in computer memory to be read or updated).
In recent years there have been numerous examples of security breaches involving thefts of both data-at-rest and data in motion from tens of millions of users. Information technology (IT) professionals use various methods to help prevent such data theft. Currently, different techniques are used to protect data in motion as compared with protection of data at rest. For example, secure sockets layers (SSL), virtual private networks (VPNs) and combinations of these are two examples of security technologies that can be fairly effective in protecting and securing data in flight, especially when combined with other methods that protect that data from start to finish, such as message level security and application level security. Data at rest, however, requires different types of protection. Because of data mobility, data storage consolidation, and data replication, a single breach into data at rest can compromise many millions more records than with a single breach of data in flight.
Organizations have many options for securing data-at-rest, including authentication controls, logical separation, physical security, and encryption of information. Although each option has advantages and disadvantages, when extremely large amounts of data are involved, encryption can provide the most workable solution. Encryption of data, as is well known, involves converting data to an unintelligible form called ciphertext, which cannot be read unless a key is used to decrypt the data (in some types of encryption the same key also is used to encrypt the data). Encryption also can be an important way to protect data at rest in other situations, including the electronic and physical movement of data for backup, data recovery, and/or maintenance. In addition, encryption helps to limit exposure to security breaches, so even if someone is able to access the storage media, the data is still protected to prevent unauthorized access to sensitive information on the storage media. Use of encryption also helps address compliance with industry regulations that require encryption, such as the payment card industry Data Security Standard (PCI/DSS), the Sarbanes-Oxley Act, the Gramm-Leach Bliley Act (GLBA), the Health Insurance Portability and Accountability Act (HIPAA), the United Kingdom Data Protection act (UK DPA), the European Union Directive on personal information, (95/46/EC,), various state statutes protecting personal information such as California's CA 1798, and the like.
The best place to implement encryption in a computer system, especially a networked or enterprise computer system, can vary depending on the use case and/or the customer. For example, in an enterprise-level computer system, encryption can be provided at the application level, the host or operating system level, within the network, and/or at the level where the physical device resides.
Encrypting at the application level allows for a significant amount of control over the encryption process, because application users can dictate how to classify information, who can access it, and when. In addition, application level encryption allows for granular, specific information to be secured as it leaves the application. However, encrypting at the application level has several disadvantages. For example, one disadvantage of application based encryption is that it requires modification of the application, which can be costly, time consuming, and difficult to implement, especially if lots of legacy data that needs to be encrypted is involved.
Another disadvantage is that application-based encryption does not take into account the impact of the encryption it provides on replicated data (especially backed up or mirrored data, data stored for disaster recovery purposes, etc.). Data that is written by one application and encrypted cannot be used by another application without the first application also decrypting the data or providing a consistent encryption/key management interface for applications to share data. This makes some use cases of replication more difficult. Also, for Disaster Recovery, the application would have to be configured to use the same key(s) on both sites, resulting in an extra management step.
Network-based encryption may be appropriate when network or storage level threats are a concern to the organization, and network-based encryption offloads the cost of encryption from the host. Here, a network appliance can be used to present an unencrypted side and an encrypted side to the network. Network-based encryption also presents challenges when coupled with storage-based functionality such as replication. In particular, network-level encryption doesn't take into account its impact on replicated data. Any locally replicated information in storage (e.g., a mirror or clone) does not have visibility into the network device management and the keys, and the network device does not have visibility into the replication process. Key management can become more complex and require more manual intervention, as well as coordination between the security and storage domains, which is time consuming and more expensive.
Encryption done where the physical device resides, such as encryption on intelligent arrays, includes encryption of storage media such as arrays, disks, or tapes, which protects sensitive information residing on the storage media. Data written to the physical device is encrypted and stored as such and is decrypted when read from the device. Encryption done where the physical device resides is application and host independent and can be transport-independent, as well. This type of encryption can be advantageous when theft of the storage media is a concern. However, because data is decrypted immediately off the storage media when accessed, security breaches can occur throughout the network, on the host and at the application. Keys can be acquired at the disk or tape level.
Tape encryption also presents key management challenges. For example, tapes may be stored for an extended period of time before an attempt is made to recover information. During the normal process of managing encrypted data, the program that originally wrote the tapes (e.g., an archiving application) may have re-keyed the data on tape, updating all data on the tape to a new key. Doing this would present the application with active “live” data using one key and data on tape using an older key. For example, one problem arises when the “live” data is stored with a newer key and the user wants to restore some older data from tape that was stored with a different key. This rekeying problem exists with any data which is archived in an encrypted form but the archiving application is not in charge of the encryption. It can be difficult to manage keys for the lifetime of the data, regardless of where the data is stored. A tape can be restored using any number of tape drives, each of which would need access to a key. Another issue is that because tapes are transportable, keys must be as well. If an encrypted tape is replicated, association of the correct key with the replica needs to be done manually, adding an extra step and burden.
Organizations have sometimes been reluctant to deploy encryption of data at rest for various reasons. Some reasons include the complexity of managing many keys, the need to add extra steps to existing processes for data storage (which can be difficult and time consuming, especially if existing management scripts for replication need to be modified), the expense, the time, and (for some implementations), the need to add one or more appliances to a network. Other issues with deployment of encryption include management complexity (the cost and complexity associated with deploying and managing multiple encryption technologies and key manager); scalability across an enterprise (many “point’ solutions for encryption do not scale across application types or infrastructure elements) and disruption to service levels (installing encryption technologies and appliances may require a network outage and/or reconfiguration).